home *** CD-ROM | disk | FTP | other *** search
/ Games in French / Games in French.iso / sample1.mst < prev    next >
Text File  |  1993-01-22  |  6KB  |  251 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST MINSPACE      = 1700000
  21. CONST NOFREESPACE   = 1000
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28. GLOBAL SRCDIR$
  29. GLOBAL INSTDIR$
  30. GLOBAL APPNAME$
  31. GLOBAL WINTITLE$
  32. GLOBAL DIRNAME$
  33. GLOBAL TmpSrc$
  34. GLOBAL TmpDest$
  35.  
  36. DECLARE SUB Install
  37. DECLARE SUB BuildGroup
  38. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  39.  
  40.  
  41. INIT:
  42.     APPNAME$ = "Introductory Games in French"
  43.     DIRNAME$ = "FRENCH"    
  44.     WINTITLE$ = APPNAME$ + " - Installation"
  45.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  46.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  47.     SetBitmap CUIDLL$, LOGO
  48.     SetTitle  WINTITLE$
  49.  
  50.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  51.     IF szInf$ = "" THEN
  52.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SAMPLE1.INF"
  53.     END IF
  54.     ReadInfFile szInf$
  55.  
  56.     SRCDIR$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\")
  57.  
  58.     OPTCUR$ = "1"
  59.     DEST$ = ("C:\" + DIRNAME$)
  60.  
  61. '$IFDEF DEBUG
  62.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  63.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  64.     IF IsDriveValid(WinDrive$) = 0 THEN
  65.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  66.         GOTO QUIT
  67.     END IF
  68. '$ENDIF ''DEBUG
  69.  
  70.  
  71. OPTION:
  72.     SetSymbolValue "RadioDefault", OPTCUR$
  73. OPTL1:
  74.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  75.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  76.  
  77.     IF sz$ = "CONTINUE" THEN
  78.         UIPop(1)
  79.     ELSEIF sz$ = "REACTIVATE" THEN
  80.         GOTO OPTL1
  81.     ELSE
  82.         GOSUB ASKQUIT
  83.         GOTO OPTION
  84.     END IF
  85.     IF OPTCUR$ = "2" THEN
  86.         GOTO NOINSTALL
  87.     END IF
  88.  
  89.  
  90. GETPATH:
  91.     SetSymbolValue "EditTextIn", DEST$
  92.     SetSymbolValue "EditFocus", "END"
  93. GETPATHL1:
  94.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  95.     DEST$ = GetSymbolValue("EditTextOut")
  96.  
  97.     IF sz$ = "CONTINUE" THEN
  98.         IF IsDirWritable(DEST$) = 0 THEN
  99.             GOSUB BADPATH
  100.             GOTO GETPATHL1
  101.         END IF
  102.         IF GetFreeSpaceForDrive(DEST$) < MINSPACE THEN
  103.         GOSUB NOFREESPACE
  104.             GOTO GETPATHL1
  105.         ENDIF
  106.         UIPop 1
  107.     ELSEIF sz$ = "REACTIVATE" THEN
  108.         GOTO GETPATHL1
  109.     ELSEIF sz$ = "BACK" THEN
  110.         UIPop 1
  111.         GOTO OPTION
  112.     ELSE
  113.         GOSUB ASKQUIT
  114.         GOTO GETPATH
  115.     END IF
  116.  
  117.  
  118.     Install
  119.     GOTO QUIT
  120.  
  121. NOINSTALL:
  122.     INSTDIR$ = SRCDIR$
  123.     BuildGroup
  124.  
  125. QUIT:
  126.     ON ERROR GOTO ERRQUIT
  127.  
  128.     IF ERR = 0 THEN
  129.         dlg% = EXITSUCCESS
  130.     ELSEIF ERR = STFQUIT THEN
  131.         dlg% = EXITQUIT
  132.     ELSE
  133.         dlg% = EXITFAILURE
  134.     END IF
  135. QUITL1:
  136.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  137.     IF sz$ = "REACTIVATE" THEN
  138.         GOTO QUITL1
  139.     END IF
  140.     UIPop 1
  141.  
  142.     END
  143.  
  144. ERRQUIT:
  145.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  146.     END
  147.  
  148.  
  149.  
  150. BADPATH:
  151.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  152.     IF sz$ = "REACTIVATE" THEN
  153.         GOTO BADPATH
  154.     END IF
  155.     UIPop 1
  156.     RETURN
  157.  
  158. NOFREESPACE:
  159.     sz$ = UIStartDlg(CUIDLL$, NOFREESPACE, "FInfo0DlgProc", 0, "")
  160.     IF sz$ = "REACTIVATE" THEN
  161.         GOTO BADPATH
  162.     END IF
  163.     UIPop 1
  164.     RETURN
  165.  
  166.  
  167.  
  168. ASKQUIT:
  169.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  170.  
  171.     IF sz$ = "EXIT" THEN
  172.         UIPopAll
  173.         ERROR STFQUIT
  174.     ELSEIF sz$ = "REACTIVATE" THEN
  175.         GOTO ASKQUIT
  176.     ELSE
  177.         UIPop 1
  178.     END IF
  179.     RETURN
  180.  
  181.  
  182.  
  183. '**
  184. '** Purpose:
  185. '**     Builds the copy list and performs all installation operations.
  186. '** Arguments:
  187. '**     none.
  188. '** Returns:
  189. '**     none.
  190. '*************************************************************************
  191. SUB Install STATIC
  192.  
  193.     SrcDir$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\")
  194.     CreateDir DEST$, cmoNone
  195.  
  196.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  197.     WriteToLogFile ""
  198.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  199.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  200.     WriteToLogFile ""
  201.     WriteToLogFile "May have had to create the directory: " + DEST$
  202.     WriteToLogFile ""
  203.  
  204.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  205.     TmpSrc$ = SrcDir$ + "VARIABLE\IWVAR"
  206.     TmpDest$ = DEST$ + "\VARIABLE"
  207.     AddSectionFilesToCopyList "IWVAR", TmpSrc$, TmpDest$
  208.     CopyFilesInCopyList
  209.  
  210.     INSTDIR$ = DEST$
  211.     BuildGroup
  212.     CloseLogFile
  213.  
  214. END SUB
  215.  
  216. SUB BuildGroup STATIC
  217.  
  218.     CreateProgmanGroup "LANGUAGE", "", cmoNone
  219.     ShowProgmanGroup  "LANGUAGE", 1, cmoNone
  220.     CreateProgmanItem "LANGUAGE", APPNAME$, MakePath(INSTDIR$,"present.exe"), MakePath(INSTDIR$,"french.ico"), cmoOverwrite
  221.  
  222.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  223.  
  224. END SUB
  225.  
  226.  
  227.  
  228.  
  229. '**
  230. '** Purpose:
  231. '**     Appends a file name to the end of a directory path,
  232. '**     inserting a backslash character as needed.
  233. '** Arguments:
  234. '**     szDir$  - full directory path (with optional ending "\")
  235. '**     szFile$ - filename to append to directory
  236. '** Returns:
  237. '**     Resulting fully qualified path name.
  238. '*************************************************************************
  239. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  240.     IF szDir$ = "" THEN
  241.         MakePath = szFile$
  242.     ELSEIF szFile$ = "" THEN
  243.         MakePath = szDir$
  244.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  245.         MakePath = szDir$ + szFile$
  246.     ELSE
  247.         MakePath = szDir$ + "\" + szFile$
  248.     END IF
  249. END FUNCTION
  250.  
  251.